home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / util / time / backclock.lha / BackClock / sources / tracewin.c < prev    next >
C/C++ Source or Header  |  1998-02-08  |  3KB  |  69 lines

  1. /*****************************************************************************
  2.  *
  3.  * Nom:                tracewin.c
  4.  * Desc:                fonctions de traçage dans les fenetres
  5.  *
  6.  *
  7.  * version             : $VER: tracewin.c 1.2 (08.02.98)
  8.  *****************************************************************************
  9.  */ 
  10. #include <proto/graphics.h>
  11. #include <math.h>
  12. #include "utils.h"
  13.  
  14.  
  15. void initwin(idWin * prj) {
  16.   int i ;
  17.   ULONG mX, mY ;
  18.   mX = prj->backWin.width / 2 ;
  19.   mY = prj->backWin.height / 2 ;
  20.   SetAPen(prj->win->RPort, prj->backWin.back) ;        // couleur fond
  21.   RectFill(prj->win->RPort, 0, 0, prj->backWin.width - 1,
  22.                                   prj->backWin.height - 1) ;// trace le fond
  23.   SetAPen(prj->win->RPort, 7) ;                            // couleur jaune
  24.   for(i = 0; i < 360; i=i+30) {
  25.     /* trace les repères des heures
  26.      */
  27.     Move(prj->win->RPort, ULONG(cos(PI*i/180.0) * (mX-mX/10L)) + mX, ULONG(sin(PI*i/180.0) * (mX-mX/10L)) + mY) ;
  28.     Draw(prj->win->RPort, ULONG(cos(PI*i/180.0) * mX) + mX, ULONG(sin(PI*i/180.0) * mY) + mY) ;
  29.   }      
  30. }
  31.  
  32. void effacer(idWin * prj) {
  33.   ULONG mX, mY ;
  34.   mX = prj->backWin.width / 2 ;
  35.   mY = prj->backWin.height / 2 ;
  36.   SetAPen(prj->win->RPort, prj->backWin.back) ;        // couleur fond
  37.   /* efface les heures
  38.    */
  39.   Move(prj->win->RPort, mX,mY) ;
  40.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldH)*30.0-90.0 + (prj->oldM)/2.0)/180.0)*(mX-mX/2L)),mY+(ULONG)(sin(PI*((prj->oldH)*30.0-90.0 + (prj->oldM)/2.0)/180.0)*(mY-mY/2L))) ;
  41.   /* efface les minutes
  42.    */
  43.   Move(prj->win->RPort, mX,mY) ;
  44.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldM)*6.0-90.0)/180.0)*(mX-mX/3L)), mY+(ULONG)(sin(PI*((prj->oldM)*6.0-90.0)/180.0)*(mY-mY/3L))) ;
  45.   /* efface les secondes
  46.    */
  47.   Move(prj->win->RPort, mX,mY) ;
  48.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldS)*6.0-90.0)/180.0)*(mX-mX/4L)), mY+(ULONG)(sin(PI*((prj->oldS)*6.0-90.0)/180.0)*(mY-mY/4L))) ;
  49. }
  50. void retracer(idWin * prj) {
  51.   ULONG mX, mY ;
  52.   mX = prj->backWin.width / 2 ;
  53.   mY = prj->backWin.height / 2 ;
  54.   SetAPen(prj->win->RPort, 1) ;        // noir
  55.   /* trace les heures
  56.    */
  57.   Move(prj->win->RPort, mX,mY) ;
  58.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*( (prj->heu)*30.0-90.0 + (prj->min)/2.0) /180.0)*(mX-mX/2L)), mY+(ULONG)(sin(PI*((prj->heu)*30.0-90.0 + (prj->min)/2.0)/180.0)*(mY-mY/2L))) ;
  59.   /* trace les minutes
  60.    */
  61.   Move(prj->win->RPort, mX,mY) ;
  62.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->min)*6.0-90.0)/180.0)*(mX-mX/3L)), mY+(ULONG)(sin(PI*((prj->min)*6.0-90.0)/180.0)*(mY-mY/3L))) ;
  63.   /* trace les secondes
  64.    */
  65.   Move(prj->win->RPort, mX,mY) ;
  66.   Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->sec)*6.0-90.0)/180.0)*(mX-mX/4L)), mY+(ULONG)(sin(PI*((prj->sec)*6.0-90.0)/180.0)*(mY-mY/4L))) ;
  67. }
  68.  
  69.